From 4c28ee80a622867e83c7540bb354b89b39049aef Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Fri, 30 Aug 2019 07:37:55 +0200 Subject: [PATCH] filechooserwidget: Create recent manager when setting operation mode Creating a recent manager can be fairly expensive and we won't use it if the widget is not visible or the recent mode has not been entered. Code other places can already handle a NULL recent manager, so just create it when entering the recent mode. And shove 25ms of startup time off the widget-factory this way. --- gtk/gtkfilechooserwidget.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index f2bc4b2b12..b229972dad 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -3150,6 +3150,9 @@ operation_mode_set_recent (GtkFileChooserWidget *impl) GFile *file; GtkRevealerTransitionType old_revealer_transition_type; + if (!priv->recent_manager) + priv->recent_manager = gtk_recent_manager_get_default (); + gtk_stack_set_visible_child_name (GTK_STACK (priv->browse_files_stack), "list"); gtk_stack_set_visible_child_name (GTK_STACK (priv->browse_header_stack), "pathbar"); @@ -6812,6 +6815,10 @@ add_selection_to_recent_list (GtkFileChooserWidget *impl) files = gtk_file_chooser_widget_get_files (GTK_FILE_CHOOSER (impl)); + + if (!priv->recent_manager) + priv->recent_manager = gtk_recent_manager_get_default (); + for (l = files; l; l = l->next) { GFile *file = l->data; @@ -8640,7 +8647,6 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl) priv->operation_mode = OPERATION_MODE_BROWSE; priv->sort_column = MODEL_COL_NAME; priv->sort_order = GTK_SORT_ASCENDING; - priv->recent_manager = gtk_recent_manager_get_default (); priv->create_folders = TRUE; priv->auto_selecting_first_row = FALSE; priv->renamed_file = NULL; -- 2.30.2